A Provably Correct Functional Programming Approach to the Prototyping of Formal Z Specifications
نویسندگان
چکیده
This paper describes a systematic way of constructing correct prototypes in a functional language such as Miranda or Haskell from Z specifications. A formal relationship between Z specifications and functional prototypes is established. This relationship is based on model refinement in the sense of specification refinement in the model-oriented specification style. To reduce the number of proofs required in model refinement, we have defined a set of rules that allow us to derive a prototype from a specification. The use of such a set of rules implicitly guarantees the correctness of the derivation.
منابع مشابه
Software Development with Object-Z, CSP, and Java: A Pragmatic Link from Formal Specifications to Programs
Object-Z and CSP are high level specification languages which offer powerful formal support for the design of distributed, communicating systems. Java is an ideal implementation language for such systems. But developing provably correct Java implementations from these specifications is notoriously difficult. To bridge this gap we suggest to use Jass, which extends Java with assertions, as an in...
متن کاملFormal specification and rapid prototyping: building in quality at the start
Formal Methods for Software Engineering, although widely recognised in academe as of potential benefit to industry, have proved difficult to "sell", both to industry and to students. Building on a novel teaching approach at Coventry University, we present an integrated approach to formal specification and rapid prototyping that offers a real contribution to building in quality at the front end ...
متن کاملFunZ: An Intermediate Specification Language
During the last few years, the field of software engineering has witnessed an increased interest in formal methods and software reuse. At the same time, functional programming languages, often espoused as rapid prototyping tools, have begun to enjoy more mainstream usage. Assuming that these trends continue, software developers will need improved methods to transform existing specifications int...
متن کاملRapid Prototyping using Formal Specifications
There is growing interest in animating formal specifications for the purpose of better understanding the requirements and for validating the specification. Formal specifications in a non-executable language offer challenges for animation systems, for example, dealing effectively with infinite data sets, sensibly animating functions which are not computable and determining a sensible set of inpu...
متن کاملDeriving Correct Prototypes from Formal Z Specifications
This paper describes a systematic way of constructing correct prototypes in a functional language such as Miranda from Z specifications. A formal relationship between Z specifications and functional prototypes is established. This relationship is based on model refinement in the sense of specification refinement in the model-oriented specification style. To reduce the number of proofs required ...
متن کامل